package com.atguigu.file;
import org.junit.Test;

import java.io.*;

public class BufferTest {
    @Test
    //处理流之一，缓冲流的使用
    /*
    缓冲流的作用:提高流的读取和写入的速度
     */
    public void test(){
        BufferedInputStream bis= null;
        BufferedOutputStream bos= null;
        try {
            //1.造文件
            File srcFile=new File("hello.jpg");
            File destFile=new File("hello1.jpg");
            //2.造流
            //2.1造节点流
            FileInputStream fis=new FileInputStream(srcFile);
            FileOutputStream fos=new FileOutputStream(destFile);
            //2.2造缓冲流
            bis = new BufferedInputStream(fis);
            bos = new BufferedOutputStream(fos);
            //3.复制
            byte[] buffer=new byte[10];
            int len;
            while((len=bis.read())!=-1){
                bos.write(buffer,0,len);
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            //4.关闭
            //要求，先关闭外层的流，再关闭内层的流
            //在关闭外层的流后，内层的也会被顺带关闭
            try {
                if(bos!=null)
                bos.close();
            }catch(IOException e){
                e.printStackTrace();
            }
            try {
                if(bis!=null)
                bis.close();
            }catch (IOException e){
                e.printStackTrace();
            }
        }
    }
}
